package cn.aopmin.config;

import cn.aopmin.common.DataSourceContextHolder;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

/**
 * AbstractRoutingDataSource(抽象的数据源路由器) 的基本原理是, 它维护了一个数据源的集合，每个数据源都有唯一的一个标识符
 * 当应用程序需要访问数据库的时候,AbstractRoutingDataSource会根据某种匹配规则（例如请求参数、用户身份等）来选择一个合适的数据源，
 * 并将请求转发给这个数据源。
 */
public class DynamicDataSource extends AbstractRoutingDataSource {

    /**
     * 获取数据源名称
     * @return
     */
    @Override
    protected Object determineCurrentLookupKey() {
        return DataSourceContextHolder.getDataSource();
    }
}